package cn.ljh.zard.parse;

import java.io.InputStream;
import java.util.Collection;

public interface IParseRegister {

    /**
     * 注册对应的解析器
     *
     * @param extensionName 文件的拓展名
     * @param parse         具体的解析器类
     */
    public void registerParse(String extensionName, Parse parse);


    /**
     * 获取当前所有的解析器
     *
     * @return
     */
    public Collection<Parse> getParses();

    /**
     * 解析对应的文件 获取内容
     *
     * @return
     */
    public InputStream parse(String key, String location);


    /**
     * 获取拓展名对应的解析器
     *
     * @param string
     * @return
     */
    @SuppressWarnings("unchecked")
    public Parse resolveAlias(String string);

}
